第6章 软件编码

编码和测试统称为实现。

所谓编码,就是把软件设计结果翻译成用某种程序设计语言书写的程序。作为软件工程过程的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量。

6.1 程序设计语言

程序设计语言:

  1. 机器语言,几乎不使用。

  2. 汇编语言,特殊场合使用。

  3. 高级语言,明显优于汇编语言。

程序设计语言的划代:

img

选择语言的理想标准:

  1. 为了使程序容易测试和维护以减少软件的总成本,所选用的高级语言应该有理想的模块化机制,以及可读性好的控制结构和数据结构;
  2. 为了便于调试和提高软件可靠性,语言特点应该使编译程序能够尽可能多地发现程序中的错误;
  3. 为了降低软件开发和维护的成本,选用的高级语言应该有良好的独立编译机制。

主要的实用标准:

  1. 系统用户的要求

  2. 可以使用的编译程序

  3. 可以得到的软件工具

  4. 工程规模

  5. 程序员的知识

  6. 软件可移植性要求

  7. 软件的应用领域

6.2 编码风格

源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。

程序内部的文档

  1. 恰当的标识符

  2. 适当的注解

  3. 程序的视觉组织

数据说明

  1. 数据说明的次序应该标准化。

  2. 当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。

  3. 如果设计时使用了一个复杂的数据结构,则应该用注解说明用程序设计语言实现这个数据结构的方法和特点。

语句构造

  1. 不要为了节省空间而把多个语句写在同一行;

  2. 尽量避免复杂的条件测试;

  3. 尽量减少对“非”条件的测试;

  4. 避免大量使用循环嵌套和条件嵌套;

  5. 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。

输入输出

  1. 对所有输入数据都进行检验;

  2. 检查输入项重要组合的合法性;

  3. 保持输入格式简单;

  4. 使用数据结束标记,不要要求用户指定数据的数目;

  5. 明确提示交互式输入的请求,详细说明可用的选择或边界数值;

  6. 当程序设计语言对格式有严格要求时,应保持输入格式一致;

  7. 设计良好的输出报表;

  8. 给所有输出数据加标志。

效率

  1. 效率主要指处理机时间和存储器容量两个方面。

  2. 效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。

  3. 效率是靠好设计来提高的。

  4. 程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率。

效率问题

  1. 程序运行时间

    • 写程序之前先简化算术的和逻辑的表达式
    • 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移
    • 尽量避免使用多维数组
    • 尽量避免使用指针和复杂的表
    • 使用执行时间短的算术运算
    • 不要混合使用不同的数据类型
    • 尽量使用整数运算和布尔表达式
  2. 存储器效率

    • 使用能保持功能域的结构化控制结构,是提高效率的好方法
    • 在微处理机中如果要求使用最少的存储单元,则应选用有紧缩存储器特性的编译程序,在非常必要时可以使用汇编语言。
    • 提高执行效率的技术通常也能提高存储器效率。提高存储器效率的关键同样是“简单”。
  3. 输入输出的效率

    如果用户为了给计算机提供输入信息或为了理解计算机输出的信息,所需花费的脑力劳动是经济的,那么人和计算机之间通信的效率就高。因此,简单清晰同样是提高人机通信效率的关键。